home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / OBJ1_2.ZIP;1 / OBJECT2.PRG < prev    next >
Encoding:
Text File  |  1993-01-21  |  46.8 KB  |  1,000 lines

  1. //*****************************************************************************
  2. // OBJECT2.PRG
  3. // Language depend functions & help system for OBJECT v2.03
  4. // Copyright (c) 1991, JHK, JHK-Software, Piestany
  5. // Please compile with: /N/M/W/A
  6. //-----------------------------------------------------------------------------
  7. // for language convert You can modify two functions: ResTxt(n) & HelpKeys().
  8. // 
  9.  
  10. #include "InKey.ch"
  11. #include "Object.ch"
  12.  
  13. static aHelpKeys:={}     //need for help system: {{indexes into aHelpTxt},...}
  14. static Association:={}   //{{"ALIAS->FIELD","VarName",Help_RecNo()},...}
  15.  
  16. //*****************************************************************************
  17. // ResTxt(n) --> info_string
  18. // used instead many #define commands, because clipper has limited room
  19. // for internal table od #define.
  20. //
  21. function ResTxt(n)
  22.   do case
  23.   #ifdef ENGLISH //------------------------------------------------------
  24.     //
  25.     case n==001; return "JHK, JHK-Software, Piestany"
  26.     case n==002; return "     Welcome in program "    //top line
  27.     case n==003; return "     "
  28.     case n==004; return "version "               //function About(...)
  29.     case n==005; return "Authorized user is "
  30.     case n==006; return "All rights reserved"
  31.     case n==007; return "end"                    //end word for help
  32.     case n==008; return "Syntax is: "            //ParseInputParameters(...)
  33.     case n==009; return "  /0-black and white monitor"
  34.     case n==010; return "  /1-monochrome monitor (laptop)"
  35.     case n==011; return "  /2-monochrome monitor (VGA)"
  36.     case n==012; return "  /3-color monitor"
  37.     case n==013; return "  /RECOVER ... clear busy flag, and make reindex."
  38.     case n==014; return "Enter today date (MM/DD/YY) "   //ReadIt
  39.     case n==015; return "Enter time (HH:MM:SS) "         //ReadIt
  40.     case n==016; return "Enter UserID:"
  41.     case n==017; return "Enter pasword:"
  42.     case n==018; return "Enter new pasword:"
  43.     case n==019; return "Replay new pasword (for confirmation):"
  44.     case n==020; return "Locked columns:"
  45.     case n==021; return "Memo"        //Window titles
  46.     case n==022; return "Task list"
  47.     case n==023; return "User ID"
  48.     case n==024; return "Password"
  49.     case n==025; return "Menu"
  50.     case n==026; return "Users settings"
  51.     case n==027; return "Change pasword"
  52.     case n==028; return "Help: Active keys"
  53.     case n==029; return "Backup: Save databases into "
  54.     case n==030; return "Warning!;;To erase databases and load it from "
  55.     case n==031; return "Restore: Load databases from "
  56.     case n==032; return "View text file"
  57.     case n==033; return "Select file:"
  58.     case n==034; return "Select line:"
  59.     case n==035; return "~View"        //View menu items
  60.     case n==036; return "~Edit"        //(+window titles)
  61.     case n==037; return "~Go to"
  62.     case n==038; return "set~Index"
  63.     case n==039; return "set~Filter"
  64.     case n==040; return "set~Report"
  65.     case n==041; return "~Modify"
  66.     case n==042; return "~Index"
  67.     case n==043; return "~Filter"
  68.     case n==044; return "~Report"
  69.     case n==045; return "~0.Unsorted"
  70.     case n==046; return "~0.Filter Off"
  71.     case n==047; return "Top lines of report"
  72.     case n==048; return "Fields for report"
  73.     case n==049; return "Bottom lines of report"
  74.     case n==050; return "Record number"
  75.     case n==051; return "RecNo"        //report show msg info
  76.     case n==052; return "CurRec"
  77.     case n==053; return "Index"
  78.     case n==054; return "Filter"
  79.     case n==055; return "Report"
  80.     case n==056; return "Item name"    //set/modify index filter texts
  81.     case n==057; return "Help for"
  82.     case n==058; return "Bad"
  83.     case n==059; return "New"
  84.     case n==060; return "New"
  85.     case n==061; return "Index key"
  86.     case n==062; return "Filter expression"
  87.     case n==063; return "Unique"
  88.     case n==064; return "Type of index expression:"
  89.     case n==065; return "Type of filter expression:"
  90.     case n==066; return "Example:"
  91.     case n==067; return "Master (selected) database:"
  92.     case n==068; return "Available fields:"
  93.     case n==069; return "Available functions are:"
  94.     case n==070; return "Now this program must be reinitialized.;Program will be terminated,;after return into operating system, start it again, please."
  95.     case n==071; return "Cannot continue."
  96.     case n==072; return "More then one user handle program."
  97.     case n==073; return "Too many users handle program."
  98.     case n==074; return "Cannot save data on disk."
  99.     case n==075; return "The new "
  100.     case n==076; return "won't be able to be saved on disk.;You can work with it, until you will terminate the program.;Do you want to continue?"
  101.     case n==077; return "Can't sum non-numerical field"
  102.     case n==078; return "Local menu not defined"
  103.     case n==079; return "Can't edit virtual record"
  104.     case n==080; return "Reports not defined"              //report
  105.     case n==081; return "Creating report..."               //inside window
  106.     case n==082; return "Select fields for report"         //inside window
  107.     case n==083; return "Fields"
  108.     case n==084; return "Total"
  109.     case n==085; return "SubTotal"
  110.     case n==086; return "begin of report"                  //text in report file
  111.     case n==087; return "end of report"                    //text ...
  112.     case n==088; return "Terminate report:;Are you sure?"  //alert
  113.     case n==089; return "Error in report!"
  114.     case n==090; return "Cannot create report file,; report process aborting..."
  115.     case n==091; return "Report file is"
  116.     case n==092; return "Do you want do?"
  117.     case n==093; return "Print this report?"
  118.     case n==094; return "Cannot open report file,; report process aborting..."
  119.     case n==095; return "No field(s) defined!"
  120.     case n==096; return "Syntax error!"    //Alert
  121.     case n==097; return "Quit program?"
  122.     case n==098; return "Memory full!"
  123.     case n==099; return "Out of range!"
  124.     case n==100; return "guest"
  125.     case n==101; return "Main supervisor menu"
  126.     case n==102; return "Supervisor can do all!"
  127.     case n==103; return "Welcome in program, supervisor!;Databases created, do not forget setup passwords!"
  128.     case n==104; return "Append new row?"
  129.     case n==105; return "Delete current row?"
  130.     case n==106; return "Abort program!;Are you absolute sure?"
  131.     case n==107; return "Can`t erase file"
  132.     case n==108; return "Can't create index file"
  133.     case n==109; return "Can't open index files"
  134.     case n==110; return "Can't modify database"
  135.     case n==111; return "Can't modify this record"
  136.     case n==112; return "Can't create database"
  137.     case n==113; return "Can't open database in shared mode"
  138.     case n==114; return "Can't appen new record into database"
  139.     case n==115; return "Can't recall current record in database"
  140.     case n==116; return "Can't delete current record from database"
  141.     case n==117; return "Any task(s) is(are) active, close it, please"
  142.     case n==118; return "New password saved."
  143.     case n==119; return "Bad password!; I cannot save it!"
  144.     case n==120; return "Cannot save entered password,;old pasword is active!"
  145.     case n==121; return "Task swapper:;Can't activate requested window!"
  146.     case n==122; return {"Go back"}    //Alert answers
  147.     case n==123; return {"Yes","No"}
  148.     case n==124; return {"Forget item","Go back"}
  149.     case n==125; return {"Retry","Continue"}
  150.     case n==126; return {"Retry","Abort program"}
  151.     case n==127; return {"Retry","Continue","Abort program"}
  152.     case n==128; return {"Change supervisor password","Setting all"}
  153.     case n==129; return {"~Restore          ","~Minimize       F5","ma~Ximize    Sh-F5","~Next window    F6","~Previous w..Sh-F6","~Tile           F7","~Cascade     Sh-F7","move-~Size      F8","cl~Ose         Esc","s~Witch to.. Alt-0"}
  154.     case n==130; return {"Retry","Close","Task list","Main menu"}
  155.     case n==131; return {"Minimize","Close","Task list","Main menu"}
  156.     case n==132; return {"Delete file & Exit","Only exit","Go back"}
  157.     case n==133; return "go"    //get_set_blocks in Browse
  158.     case n==134; return "memo"
  159.     case n==135; return "Tab=mode"      //dialog lines
  160.     case n==136; return "P=Print"
  161.     case n==137; return "Enter=ok"
  162.     case n==138; return "Esc=exit,"+chr(26)+"=move,Enter=select"
  163.     case n==139; return "Moving column(row): "+chr(26)+"=move,Other=done"
  164.     case n==140; return "F1=help,=move,Esc=exit,Enter=select,Home=top,End=bottom"
  165.     case n==141; return "F1=help,"+chr(26)+"=move,Esc=exit,Enter=select,Home=top,End=bottom"
  166.     case n==142; return "F1=help,"+chr(26)+"=move,Enter=select,Home=top,End=bottom"
  167.     case n==143; return "Ins/Del=row"
  168.     case n==144; return "Esc=exit,Enter=done,BackSpace=delete_previous_key"
  169.     case n==145; return "F1=help,@#F10=menu"
  170.     case n==146; return ""+chr(26)+"=move,Esc/^Enter=exit"
  171.     case n==147; return "F1=help,"+chr(26)+"/PgUp/PgDn/^PgUp/^PgDn=move"
  172.     case n==148; return "F1=help,"+chr(26)+"/PgUp/PgDn=move,Esc/^Enter=exit"
  173.     case n==149; return "F1=help,@#F10=menu"
  174.     case n==150; return "F1=help,Esc=exit,^Enter=ok"
  175.     case n==151; return "F1=help,Ins/Del=row,@#F10=menu"
  176.     case n==152; return "F1=help,Esc=exit(no change),Enter=ok,"+chr(26)+"=move"
  177.     case n==153; return "F1=help,Esc=done,Enter=done,"+chr(26)+"=move"
  178.     case n==154; return "F1=help,Esc/^Enter=done,=move,Enter=enable_disable_item"
  179.     case n==155; return "F1=help,"+chr(26)+"=move,NumLock"+chr(26)+"=resize,Other=done"
  180.     case n==156; return "Testing system files..."  //dialog lines (operator waits)
  181.     case n==157; return "Creating file "
  182.     case n==158; return "Finding file "
  183.     case n==159; return "Opening file "
  184.     case n==160; return "Packing file "
  185.     case n==161; return "Zapping file "
  186.     case n==162; return "Reading fields..."
  187.     case n==163; return "Reading file..."
  188.     case n==164; return "Reading directory..."
  189.     case n==165; return "Reading paswords..."
  190.     case n==166; return "Reading menu structure..."
  191.     case n==167; return "Reading database(s) structure..."
  192.     case n==168; return "Building view(s) structure..."
  193.     case n==169; return "Building menu structure..."
  194.     case n==170; return "Setting filter..."
  195.     case n==171; return "Setting relation(s)..."
  196.     case n==172; return "Drawing window(s)..."
  197.     case n==173; return "Saving paswords..."
  198.     case n==174; return "Task switching..."
  199.     case n==175; return "Please wait..."
  200.     case n==176; return "Searching for record..."
  201.     case n==177; return "To find"
  202.     case n==178; return "Record not found"
  203.     case n==179; return "~Locate for"
  204.     case n==180; return "Level"
  205.     case n==181; return "Property of filtered items"
  206.     case n==182; return "Colored"   //colored and hidden must have
  207.     case n==183; return "Hidden "   //the same length
  208.     case n==184; return "Guest needn't a password"
  209.     case n==185; return "Shift-F1 ..... help (if is defined) for currently edited field or menu item"
  210.     case n==186; return "Another user is loading the databases,;try to run the program later."
  211.     case n==187; return "Help"
  212.     case n==188; return "A help wasn't defined."
  213.     case n==189; return "A help is defined only for editable or menu item."
  214.     case n==190; return "Creating a help database..."
  215.     case n==191; return "Availability of menu items"
  216.     case n==192; return "A filter is active in this window,;first turn it off,;then can be added a record into database."
  217.     case n==193; return "Show only subtotal and total lines"
  218.     case n==194; return "Col.title"
  219.     case n==195; return "Print begin from page?"
  220.     case n==196; return ""
  221.     case n==197; return "Please wait, printing... (press Esc for abort) ..."
  222.     case n==198; return "Cannot open file for printing, DOS ERROR=="
  223.     case n==199; return "Sorry, this report don't have "
  224.     case n==200; return " or more pages."
  225.     case n==201; return "Cannot read file for printing, DOS ERROR=="
  226.     case n==202; return "Abort printing, are you sure?"
  227.     case n==203; return "Page no."
  228.     case n==204; return "Print error! (please set up your printer)"
  229.     case n==205; return {"Retry","Abort print"}
  230.     //
  231.   #else  // #define SLOVAK ---------------------------------------------------
  232.     //
  233.     case n==001; return "JHK, JHK-Software, Piestany"
  234.     case n==002; return "     Vitajte v programe "    //top line
  235.     case n==003; return "     "
  236.     case n==004; return "verzia "                   //function About(...)
  237.     case n==005; return "Opravneny uzivatel je "
  238.     case n==006; return "Vsetky prava vyhradene"
  239.     case n==007; return "koniec"                    //end word for help
  240.     case n==008; return "Syntax je: "               //ParseInputParamaeters(...)
  241.     case n==009; return "  /0-cierno/biely monitor"
  242.     case n==010; return "  /1-monochromaticky monitor (laptop)"
  243.     case n==011; return "  /2-monochromaticky monitor (VGA)"
  244.     case n==012; return "  /3-farebny monitor"
  245.     case n==013; return "  /RECOVER ... zmaze indikaciu nahravania databaz, a urobi reindex"
  246.     case n==014; return "Zadajte dnesny datum (DD.MM.RR) "   //ReadIt
  247.     case n==015; return "Zadajte presny cas (HH:MM:SS) "     //ReadIt
  248.     case n==016; return "Zadajte uzivatelsku znacku:"
  249.     case n==017; return "Zadajte heslo:"
  250.     case n==018; return "Zadajte nove heslo:"
  251.     case n==019; return "Zopakujte zadanie hesla (pre overenie spravnosti):"
  252.     case n==020; return "Pocet zamknutych stlpcov:"
  253.     case n==021; return "Text"        //Window titles
  254.     case n==022; return "Zoznam okien"
  255.     case n==023; return "Uz.znacka"
  256.     case n==024; return "Heslo"
  257.     case n==025; return "Menu"
  258.     case n==026; return "Vsetky hesla"
  259.     case n==027; return "Zmena hesla"
  260.     case n==028; return "Napoveda: Pouzitelne klavesy"
  261.     case n==029; return "Zaloha: Ulozenie databaz do "
  262.     case n==030; return "Pozor!;;Zmazat databazy a nacitat ich z "
  263.     case n==031; return "Obnovenie: Nacitanie databaz z "
  264.     case n==032; return "Prezeranie suboru"
  265.     case n==033; return "Vyberte subor:"
  266.     case n==034; return "Vyberte riadok:"
  267.     case n==035; return "~Prezeranie"        //View menu items
  268.     case n==036; return "~Opravy"            //(+window titles)
  269.     case n==037; return "~Vyber zaznam"
  270.     case n==038; return "zap~Index"          //set~Index
  271.     case n==039; return "zap~Filter"         //...
  272.     case n==040; return "rob~Tlac"           //...
  273.     case n==041; return "~Modifikuj"
  274.     case n==042; return "~Index"
  275.     case n==043; return "~Filter"
  276.     case n==044; return "~Tlac"
  277.     case n==045; return "~0.Vypnuty"
  278.     case n==046; return "~0.Vypnuty"
  279.     case n==047; return "Zahlavie hore"
  280.     case n==048; return "Polia pre tlac"
  281.     case n==049; return "Zahlavie dolu"
  282.     case n==050; return "Cislo zaznamu"
  283.     case n==051; return "Por.c"        //report show msg info
  284.     case n==052; return "Zaznam c"
  285.     case n==053; return "Index"
  286.     case n==054; return "Filter"
  287.     case n==055; return "tvar tlacovej zostavy"
  288.     case n==056; return "Nazov polozky"    //set/modify index filter texts
  289.     case n==057; return "Pomoc pre"
  290.     case n==058; return "Zly"
  291.     case n==059; return "Novy"
  292.     case n==060; return "Nova"
  293.     case n==061; return "Indexovy kluc"
  294.     case n==062; return "Vyraz pre filter"
  295.     case n==063; return "Jedinecny"
  296.     case n==064; return "Typ vyrazu pre indexny kluc:"
  297.     case n==065; return "Typ vyrazu pre filter:"
  298.     case n==066; return "Priklad:"
  299.     case n==067; return "Hlavna (vybrata) databaza:"
  300.     case n==068; return "Dostupne polia:"
  301.     case n==069; return "Dostupne funkcie su:"
  302.     case n==070; return "Teraz je nutne reinicializovat program.;Program bude ukonceny,;po navrate do systemu ho prosim spustite znovu."
  303.     case n==071; return "Nemozem pokracovat."
  304.     case n==072; return "S programom pracuje viac ako jeden uzivatel."
  305.     case n==073; return "Prilis mnoho uzivatelov pracuje s programom."
  306.     case n==074; return "Nemozem ulozit udaje na disk."
  307.     case n==075; return "Nebudem moct ulozit novy"
  308.     case n==076; return "na disk.;Az do ukoncenia programu s nim budete moct normalne pracovat.;Chcete pokracovat v zadani?"
  309.     case n==077; return "Nemozem suctovat nenumericke pole"
  310.     case n==078; return "Lokalne menu nebolo definovane"
  311.     case n==079; return "Nemozem editovat virtualny zaznam"
  312.     case n==080; return "Ziadna zostava pre tlac nie je definovana"   //report
  313.     case n==081; return "Vytvaram zostavu..."            //inside window
  314.     case n==082; return "Vyber poli pre tlac"            //inside window
  315.     case n==083; return "Polia"
  316.     case n==084; return "Sucet"
  317.     case n==085; return "Medzi_sucet"
  318.     case n==086; return "zaciatok zostavy"                 //text in report file
  319.     case n==087; return "koniec zostavy"                   //text ...
  320.     case n==088; return "Prerusenie tlace:;Naozaj?"        //alert
  321.     case n==089; return "Chyba pocas tlace!"
  322.     case n==090; return "Nemozem vytvorit subor,;proces tlace je preruseny..."
  323.     case n==091; return "Subor obsahujuci zostavu je"
  324.     case n==092; return "Co mam urobit teraz?"
  325.     case n==093; return "Vytlacit tuto zostavu?"
  326.     case n==094; return "Nemozem otvorit subor z tlacovou zostavou,;proces tlace je preruseny..."
  327.     case n==095; return "Ziadne polia nie su definovane!"
  328.     case n==096; return "Syntakticka chyba!"    //Alert
  329.     case n==097; return "Ukoncit program?"
  330.     case n==098; return "Nedostatok pamati!"
  331.     case n==099; return "Mimo rozsah!"
  332.     case n==100; return "host"
  333.     case n==101; return "Hlavne menu supervisora"
  334.     case n==102; return "Supervisor moze robit vsetko!"
  335.     case n==103; return "Vitajte v programe, supervisor!;Databazy su vytvorene, nezabudnite nastavit hesla!"
  336.     case n==104; return "Pridat novy riadok?"
  337.     case n==105; return "Zmazat aktualny riadok?"
  338.     case n==106; return "Prerusenie programu!;Naozaj chcete prerusit program?"
  339.     case n==107; return "Nemozem zmazat subor"
  340.     case n==108; return "Nemozem vytvorit indexny subor"
  341.     case n==109; return "Nemozem otvorit indexny subor"
  342.     case n==110; return "Nemozem modifikovat databazu"
  343.     case n==111; return "Nemozem modifikovat tento zaznam"
  344.     case n==112; return "Nemozem vytvorit databazu"
  345.     case n==113; return "Nemozem otvorit databazu v zdielanom rezime"
  346.     case n==114; return "Nemozem pridat novy zaznam do databazy"
  347.     case n==115; return "Nemozem obnovit (recall) zaznam v databaze"
  348.     case n==116; return "Nemozem zmazat aktualny zaznam v databaze"
  349.     case n==117; return "Nejake okno(a) je(su) aktivne, ukoncite ich prosim"
  350.     case n==118; return "Nove heslo je ulozene."
  351.     case n==119; return "Zle heslo!;Nemozem ho ulozit!"
  352.     case n==120; return "Nemozem ulozit vlozene heslo,;stare heslo zostava aktivne!"
  353.     case n==121; return "Kontroler okien:;Nemozem aktivovat pozadovane okno!"
  354.     case n==122; return {"Chod naspat"}    //Alert answers
  355.     case n==123; return {"Ano","Nie"}
  356.     case n==124; return {"Zabudnut polozku","Chod naspat"}
  357.     case n==125; return {"Znovu","Pokracovat dalej"}
  358.     case n==126; return {"Znovu","Prerusit program"}
  359.     case n==127; return {"Znovu","Pokracovat dalej","Prerusit program"}
  360.     case n==128; return {"Zmena hesla supervisora","Vsetky hesla"}
  361.     case n==129; return {"~Obnov            ","mi~Nimalizuj    F5","ma~Ximalizuj Sh-F5","~Dalsie okno    F6","~Predch.okno Sh-F6","d~Lazdice       F7","~Kaskada     Sh-F7","~Velkost        F8","~Zrus okno     Esc","~Chod na...  Alt-0"}
  362.     case n==130; return {"Znovu","Zatvorit okno","Zoznam okien","Hlavne menu"}
  363.     case n==131; return {"Minimalizovat","Zatvorit okno","Zoznam okien","Hlavne menu"}
  364.     case n==132; return {"Zmazat subor a ukoncit","Iba ukoncit","Chod naspat"}
  365.     case n==133; return "rob"    //get_set_blocks in Browse
  366.     case n==134; return "text"
  367.     case n==135; return "Tab=rezim"      //dialog lines
  368.     case n==136; return "P=Tlac"
  369.     case n==137; return "Enter=ok"
  370.     case n==138; return "Esc=koniec,"+chr(26)+"=posun,Enter=vyber"
  371.     case n==139; return "Posun stlpca(riadku): "+chr(26)+"=posun,Ine=koniec"
  372.     case n==140; return "F1=pomoc,=posun,Esc=koniec,Enter=vyber,Home=hore,End=dolu"
  373.     case n==141; return "F1=pomoc,"+chr(26)+"=posun,Esc=koniec,Enter=vyber,Home=hore,End=dolu"
  374.     case n==142; return "F1=pomoc,"+chr(26)+"=posun,Enter=vyber,Home=hore,End=dolu"
  375.     case n==143; return "Ins/Del=riadok"
  376.     case n==144; return "Esc=koniec,Enter=koniec,BackSpace=zmaz_znak_nalavo"
  377.     case n==145; return "F1=pomoc,@#F10=menu"
  378.     case n==146; return ""+chr(26)+"=posun,Esc/^Enter=koniec"
  379.     case n==147; return "F1=pomoc,"+chr(26)+"/PgUp/PgDn/^PgUp/^PgDn=posun"
  380.     case n==148; return "F1=pomoc,"+chr(26)+"/PgUp/PgDn=posun,Esc/^Enter=koniec"
  381.     case n==149; return "F1=pomoc,@#F10=menu"
  382.     case n==150; return "F1=pomoc,Esc=prerus,^Enter=ok"
  383.     case n==151; return "F1=pomoc,Ins/Del=riadok,@#F10=menu"
  384.     case n==152; return "F1=pomoc,Esc=prerus(bez zmeny),Enter=ok,"+chr(26)+"=posun"
  385.     case n==153; return "F1=pomoc,Esc/Enter=koniec,"+chr(26)+"=posun"
  386.     case n==154; return "F1=pomoc,Esc/^Enter=koniec,=posun,Enter=povol/zakaz"
  387.     case n==155; return "F1=pomoc,"+chr(26)+"=posun,NumLock"+chr(26)+"=velkost,Ine=koniec"
  388.     case n==156; return "Testujem systemove subory..." //dialog lines (operator waits)
  389.     case n==157; return "Vytvaram subor "
  390.     case n==158; return "Hladam subor "
  391.     case n==159; return "Otvaram subor "
  392.     case n==160; return "Pakujem subor "
  393.     case n==161; return "Vyprazdnujem subor "
  394.     case n==162; return "Citam polia..."
  395.     case n==163; return "Citam subor..."
  396.     case n==164; return "Citam adresar..."
  397.     case n==165; return "Citam heslo..."
  398.     case n==166; return "Citam strukturu menu..."
  399.     case n==167; return "Citam struktury databaz..."
  400.     case n==168; return "Generujem struktury zobrazeni..."
  401.     case n==169; return "Generujem strukturu menu..."
  402.     case n==170; return "Nastavujem filter..."
  403.     case n==171; return "Nastavujem relacie..."
  404.     case n==172; return "Generujem okna..."
  405.     case n==173; return "Ukladam hesla..."
  406.     case n==174; return "Prepinam okna..."
  407.     case n==175; return "Prosim cakajte..."
  408.     case n==176; return "Hladam zaznam..."
  409.     case n==177; return "Hladat"
  410.     case n==178; return "Hladany zaznam nebol najdeny"
  411.     case n==179; return "~Najdi zaznam"
  412.     case n==180; return "Uroven"
  413.     case n==181; return "Vlastnost odfiltrovanych udajov"
  414.     case n==182; return "Vyfarbit"   //colored and hidden must have
  415.     case n==183; return "Uschovat"   //the same length
  416.     case n==184; return "Host nepotrebuje heslo"
  417.     case n==185; return "Shift-F1 ..... napoveda (ak bola definovana) k editovanemu udaju alebo k polozke menu"
  418.     case n==186; return "Niekto iny obnovuje databazy,;skuste spustit program neskor."
  419.     case n==187; return "Napoveda"
  420.     case n==188; return "Napoveda nebola definovana."
  421.     case n==189; return "Napoveda je definovana iba pre editovatelnu polozku,;alebo pre polozku menu."
  422.     case n==190; return "Generujem databazu napovedy..."
  423.     case n==191; return "Pristupnost poloziek menu"
  424.     case n==192; return "V tomto okne je aktivny filter,;najskor ho vypnite;potom je mozne pridat dalsi zaznam."
  425.     case n==193; return "Iba riadky s medzisuctami a suctami"
  426.     case n==194; return "Nadpis stl."
  427.     case n==195; return "Tlac od stranky?"
  428.     case n==196; return ""
  429.     case n==197; return "Prosim cakajte, tlacim zostavu... (Esc==prerusenie_tlace) ..."
  430.     case n==198; return "Nemozem otvorit subor pre tlac, DOS ERROR=="
  431.     case n==199; return "Sorry, zostava nema "
  432.     case n==200; return " alebo viac stranok."
  433.     case n==201; return "Nemozem citat subor pre tlac, DOS ERROR=="
  434.     case n==202; return "Naozaj chcete prerusit tlac?"
  435.     case n==203; return "List c."
  436.     case n==204; return "Chyba tlace! (prosim nastavte tlaciaren)"
  437.     case n==205; return {"Pokracovat","Prerusit tlac"}
  438.     //
  439.   #endif //language support
  440.   endcase
  441.   return ""
  442.  
  443.  
  444. //*****************************************************************************
  445. // HelpKeys() --> true/false
  446. // this is help for active keys in OBJECT.lib
  447. //
  448. function HelpKeys()
  449.   local OldHelp1,OldHelp2,OldMsg
  450.   local OldUp,OldDown,OldWrap
  451.   local Rs,Cs,St:=""
  452.   local aHelpTxt:={}
  453.   if Empty(aHelpKeys); return(false); endif
  454.   if Empty(ATail(aHelpKeys)); return(false); endif  //disabled help
  455.   OldHelp1:=SetKey(K_F1,nil)
  456.   OldHelp2:=SetKey(K_SH_F1,nil)
  457.  
  458.   #ifdef ENGLISH //----------------------------------------------------------
  459.  
  460.   AAdd(aHelpTxt,;   //## 1 ## Task
  461.      ""+cr_lf+;
  462.      " Task keys:"+cr_lf+;
  463.      " Alt-0 ........ show a task list (list of all windows)"+cr_lf+;
  464.      " Alt-1 to Alt-9 go directly into the window 1..9"+cr_lf+;
  465.      " Esc .......... close this window"+cr_lf+;
  466.      " Ctrl-Enter ... close this window"+cr_lf+;
  467.      " F5 ........... minimize/restore this window"+cr_lf+;
  468.      " Shift-F5 ..... maximize this window"+cr_lf+;
  469.      " F6 ........... go to next window"+cr_lf+;
  470.      " Shift-F6 ..... go to previous window"+cr_lf+;
  471.      " F7 ........... tile all windows"+cr_lf+;
  472.      " Shift-F7 ..... cascade all windows"+cr_lf+;
  473.      " F8 ........... move-resize this window"+cr_lf+;
  474.      " Alt-F10 ...... activate local object menu (can't be available)"+cr_lf+;
  475.      " Shift-F10 .... activate task menu for current window"+cr_lf+;
  476.      " F10 .......... activate global (main) menu"+cr_lf+;
  477.      ""+cr_lf+;
  478.      " ShortCuts:"+cr_lf+;
  479.      " @#^F9 ........ Alt-F9, Shift-F9, Ctrl-F9, F9"+cr_lf+;
  480.      " @#F10 ........ Alt-F10, Shift-F10, F10"+cr_lf;
  481.     )
  482.   AAdd(aHelpTxt,;   //## 2 ##  Browse:Lock+Move
  483.      " F9 ........... move current column (row)"+cr_lf+;
  484.      " Alt-F9 ....... lock left columns (up rows)"+cr_lf+;
  485.      " Shift-F9 ..... hide current column (row)"+cr_lf+;
  486.      " Ctrl-F9 ...... show previously hided column (row)"+cr_lf+;
  487.      " cursor_keys .. move cursor (bar_cursor)"+cr_lf+;
  488.      " Tab .......... change mode (if is available): browse or read"+cr_lf;
  489.     )
  490.   AAdd(aHelpTxt,;   //## 3 ##  Browse:Insert+Delete
  491.      " Insert ....... insert (append) new row into database"+cr_lf+;
  492.      " Delete ....... delete current row from database"+cr_lf;
  493.     )
  494.   AAdd(aHelpTxt,;   //## 4 ##  Browse:View
  495.      " Enter ........ on <memo> field: show memo window"+cr_lf;
  496.     )
  497.   AAdd(aHelpTxt,;   //## 5 ##  Browse:Edit
  498.      " Enter ........ edit field / done editting"+cr_lf+;
  499.      " A..Z ......... directly edit field"+cr_lf+;
  500.      " Esc .......... exit from field (no save changed data)"+cr_lf;
  501.     )
  502.   AAdd(aHelpTxt,;   //## 6 ##  BrowseMode
  503.      " PgDn ......... move to the page down"+cr_lf+;
  504.      " PgUp ......... move to the page up"+cr_lf+;
  505.      " Ctrl-PgUp .... move to top of database"+cr_lf+;
  506.      " Ctrl-PgDn .... move to bottom of database"+cr_lf+;
  507.      " Home ......... move bar_cursor on left visible column in browse"+cr_lf+;
  508.      " End .......... move bar_cursor on right visible column in browse"+cr_lf+;
  509.      " Ctrl-Home .... move bar_cursor on leftmost column in browse"+cr_lf+;
  510.      " Ctrl-End ..... move bar_cursor on rightmost column in browse"+cr_lf+;
  511.      " Ctrl-Left .... scroll all columns on one position left"+cr_lf+;
  512.      " Ctrl-Right ... scroll all columns on one position right"+cr_lf;
  513.     )
  514.   AAdd(aHelpTxt,;   //## 7 ##  FormMode
  515.      " PgDn ......... move to next record"+cr_lf+;
  516.      " PgUp ......... move to previous record"+cr_lf+;
  517.      " Ctrl-PgUp .... move to top of database"+cr_lf+;
  518.      " Ctrl-PgDn .... move to bottom of database"+cr_lf+;
  519.      " Ctrl-Home .... move to top of record (first field)"+cr_lf+;
  520.      " Ctrl-End ..... move to end of record (last field)"+cr_lf;
  521.     )
  522.   AAdd(aHelpTxt,;   //## 8 ##  Moving+Editing
  523.      " Ctrl-Left .... move on begin of word"+cr_lf+;
  524.      " Ctrl-Right ... move on end of word"+cr_lf+;
  525.      " Ctrl-T ....... delete right word"+cr_lf+;
  526.      " Ctrl-BackSp . delete left word"+cr_lf+;
  527.      " Insert ....... swap insert/overwrite mode"+cr_lf+;
  528.      " BackSpace ... delete character to left of cursor"+cr_lf+;
  529.      " Delete ....... delete character at cursor"+cr_lf;
  530.     )
  531.   AAdd(aHelpTxt,;   //## 9 ##  ReadView
  532.      " cursor_keys .. move cursor"+cr_lf+;
  533.      " Enter ........ done, go further"+cr_lf+;
  534.      " Esc .......... done"+cr_lf+;
  535.      " Ctrl-Home .... move to top of record (first field)"+cr_lf+;
  536.      " Ctrl-End ..... move to end of record (last field)"+cr_lf+;
  537.      " Ctrl-Left .... move to beginning of word"+cr_lf+;
  538.      " Ctrl-Right ... move to end of word"+cr_lf;
  539.     )
  540.   AAdd(aHelpTxt,;   //## 10 ##  ReadEdit
  541.      " cursor_keys .. move cursor"+cr_lf+;
  542.      " Enter ........ ok, go further"+cr_lf+;
  543.      " Esc .......... abort editting"+cr_lf+;
  544.      " Ctrl-Home .... move to top of record (first field)"+cr_lf+;
  545.      " Ctrl-End ..... move to end of record (last field)"+cr_lf+;
  546.      " Ctrl-Left .... move to beginning of word"+cr_lf+;
  547.      " Ctrl-Right ... move to end of word"+cr_lf+;
  548.      " Ctrl-T ....... delete right word"+cr_lf+;
  549.      " Ctrl-BackSp . delete left word"+cr_lf+;
  550.      " Insert ....... swap insert/overwrite mode"+cr_lf+;
  551.      " BackSpace ... delete character to left of cursor"+cr_lf+;
  552.      " Delete ....... delete character at cursor"+cr_lf;
  553.     )
  554.   AAdd(aHelpTxt,;   //## 11 ##  MemoView=15+11
  555.      " Esc .......... done"+cr_lf+;
  556.      " Ctrl-Enter ... done"+cr_lf;
  557.     )
  558.   AAdd(aHelpTxt,;   //## 12 ##  MemoEdit
  559.      " cursor_keys .. move cursor"+cr_lf+;
  560.      " Ctrl-Enter ... done (save edited data)"+cr_lf+;
  561.      " Esc .......... abort (no save) editting"+cr_lf+;
  562.      " Ctrl-Left .... move to beginning of word"+cr_lf+;
  563.      " Ctrl-Right ... move to end of word"+cr_lf+;
  564.      " Home ......... move to beginning of current line"+cr_lf+;
  565.      " End .......... move to end of current line"+cr_lf+;
  566.      " Ctrl-Home .... move to beginnig of current window"+cr_lf+;
  567.      " Ctrl-End ..... move to end of current window"+cr_lf+;
  568.      " PgUp ......... move to previous page"+cr_lf+;
  569.      " PgDn ......... move to next page"+cr_lf+;
  570.      " Ctrl-PgUp .... move to beginning of text"+cr_lf+;
  571.      " Ctrl-PgDn .... move to end of text"+cr_lf+;
  572.      " Enter ........ next (new) line"+cr_lf+;
  573.      " Delete ....... delete character at cursor"+cr_lf+;
  574.      " BackSpace ... delete character to left of cursor"+cr_lf+;
  575.      " Tab .......... insert tab character or spaces"+cr_lf+;
  576.      " Insert ....... toggle insert mode"+cr_lf+;
  577.      " Ctrl-Y ....... delete current line"+cr_lf+;
  578.      " Ctrl-T ....... delete right word"+cr_lf;
  579.     )
  580.   AAdd(aHelpTxt,;   //## 13 ##  Drag
  581.      " cursor_keys ........ move the frame"+cr_lf+;
  582.      " NumLock+curs_keys .. resize frame:"+cr_lf+;
  583.      "      4 (Left) ... decrease columns"+cr_lf+;
  584.      "      6 (Right) .. increase columns"+cr_lf+;
  585.      "      8 (Up) ..... decrease rows"+cr_lf+;
  586.      "      2 (Down) ... increase rows"+cr_lf+;
  587.      " Other .............. done"+cr_lf;
  588.     )
  589.   AAdd(aHelpTxt,;   //## 14 ##  Security
  590.      " Up,Down ...... move cursor"+cr_lf+;
  591.      " Enter ........ swap enable/disable item(s)"+cr_lf+;
  592.      " Ctrl-Enter.... done"+cr_lf+;
  593.      " Esc .......... done"+cr_lf;
  594.     )
  595.   AAdd(aHelpTxt,;   //## 15 ##  Info
  596.      " cursor_keys .. move cursor"+cr_lf+;
  597.      " Home ......... move to beginning of current line"+cr_lf+;
  598.      " End .......... move to end of current line"+cr_lf+;
  599.      " Ctrl-Home .... move to beginnig of current window"+cr_lf+;
  600.      " Ctrl-End ..... move to end of current window"+cr_lf+;
  601.      " PgDn ......... move to the page down"+cr_lf+;
  602.      " PgUp ......... move to the page up"+cr_lf+;
  603.      " Ctrl-PgUp .... move to top of text"+cr_lf+;
  604.      " Ctrl-PgDn .... move to bottom of text"+cr_lf;
  605.     )
  606.   AAdd(aHelpTxt,;   //## 16 ##  Menu
  607.      " cursor_keys .. move cursor"+cr_lf+;
  608.      " Home ......... move to beginnig of menu"+cr_lf+;
  609.      " End .......... move to end of menu"+cr_lf+;
  610.      " Enter ........ select the higlighted item"+cr_lf+;
  611.      " Esc .......... exit from actual level of menu"+cr_lf+;
  612.      " Hilited character .... quict select of this item"+cr_lf;
  613.     )
  614.   AAdd(aHelpTxt,;   //## 17 ##  EditIt-View
  615.      " cursor_keys .. move cursor"+cr_lf+;
  616.      " Enter ........ done, go further"+cr_lf+;
  617.      " Esc .......... done"+cr_lf+;
  618.      " Ctrl-Left .... move to beginning of word"+cr_lf+;
  619.      " Ctrl-Right ... move to end of word"+cr_lf;
  620.     )
  621.   AAdd(aHelpTxt,;   //## 18 ##  EditIt-Edit: 17+18
  622.      " Ctrl-T ....... delete right word"+cr_lf+;
  623.      " Ctrl-BackSp . delete left word"+cr_lf+;
  624.      " Insert ....... swap insert/overwrite mode"+cr_lf+;
  625.      " BackSpace ... delete character to left of cursor"+cr_lf+;
  626.      " Delete ....... delete character at cursor"+cr_lf;
  627.     )
  628.  
  629.   #else  // #define SLOVAK ---------------------------------------------------
  630.  
  631.   AAdd(aHelpTxt,;   //## 1 ## Task
  632.      ""+cr_lf+;
  633.      " Riadenie okien:"+cr_lf+;
  634.      " Alt-0 ........ ukaze zoznam vsetkych okien"+cr_lf+;
  635.      " Alt-1 to Alt-9 prepne na okno cislo 1..9"+cr_lf+;
  636.      " Esc .......... zatvori (zrusi) toto okno"+cr_lf+;
  637.      " Ctrl-Enter ... zatvori (zrusi) toto okno"+cr_lf+;
  638.      " F5 ........... zmensi na ikonu"+cr_lf+;
  639.      " Shift-F5 ..... zvacsi na celu obrazovku"+cr_lf+;
  640.      " F6 ........... prepne na dalsie okno"+cr_lf+;
  641.      " Shift-F6 ..... prepne na predchadzajuce okno"+cr_lf+;
  642.      " F7 ........... zoradi okna ako dlazdice"+cr_lf+;
  643.      " Shift-F7 ..... zoradi okna do kaskady"+cr_lf+;
  644.      " F8 ........... presunie - zmeni velkost okna"+cr_lf+;
  645.      " Alt-F10 ...... aktivuje lokalne menu aktivneho okna (nemusi byt vzdy mozne)"+cr_lf+;
  646.      " Shift-F10 .... aktivuje menu riadenia okna"+cr_lf+;
  647.      " F10 .......... aktivuje hlavne menu programu"+cr_lf+;
  648.      ""+cr_lf+;
  649.      " Oznacenie klaves:"+cr_lf+;
  650.      " @#^F9 ........ Alt-F9, Shift-F9, Ctrl-F9, F9"+cr_lf+;
  651.      " @#F10 ........ Alt-F10, Shift-F10, F10"+cr_lf;
  652.     )
  653.   AAdd(aHelpTxt,;   //## 2 ##  Browse:Lock+Move
  654.      " F9 ........... presunie aktualny stlpec (riadok)"+cr_lf+;
  655.      " Alt-F9 ....... uzamkne lave stlpce (horne riadky)"+cr_lf+;
  656.      " Shift-F9 ..... schova aktualny stlpec (riadok)"+cr_lf+;
  657.      " Ctrl-F9 ...... obnovi, ukaze predtym schovany stlpec (riadok)"+cr_lf+;
  658.      " cursor_keys .. presunie kurzor (blokovy kurzor)"+cr_lf+;
  659.      " Tab .......... prepina mod zobrazenia (ak je to povolene): riadkovy_mod / formular"+cr_lf;
  660.     )
  661.   AAdd(aHelpTxt,;   //## 3 ##  Browse:Insert+Delete
  662.      " Insert ....... vlozi (prida) novy riadok do databazy"+cr_lf+;
  663.      " Delete ....... zmaze aktualny riadok z databazy"+cr_lf;
  664.     )
  665.   AAdd(aHelpTxt,;   //## 4 ##  Browse:View
  666.      " Enter ........ na <Text> poli: zobrazi Text okno"+cr_lf;
  667.     )
  668.   AAdd(aHelpTxt,;   //## 5 ##  Browse:Edit
  669.      " Enter ........ edituje pole / ukoncuje editaciu pola"+cr_lf+;
  670.      " A..Z ......... priamo edituje pole"+cr_lf+;
  671.      " Esc .......... prerusi editaciu pola (bez ulozenia zmien)"+cr_lf;
  672.     )
  673.   AAdd(aHelpTxt,;   //## 6 ##  BrowseMode
  674.      " PgDn ......... presunie o stranku dolu"+cr_lf+;
  675.      " PgUp ......... presunie o stranku hore"+cr_lf+;
  676.      " Ctrl-PgUp .... presunie na zaciatok databazy"+cr_lf+;
  677.      " Ctrl-PgDn .... presunie na koniec databazy"+cr_lf+;
  678.      " Home ......... presunie blokovy_kurzor na lavy stlpec okna v riadkovom_zobrazeni"+cr_lf+;
  679.      " End .......... presunie blokovy_kurzor na pravy stlpec okna v riadkovom_zobrazeni"+cr_lf+;
  680.      " Ctrl-Home .... presunie blokovy_kurzor na najlavejsi stlpec v riadkovom zobrazeni"+cr_lf+;
  681.      " Ctrl-End ..... presunie blokovy_kurzor na najpravejsi stlpec v riadkovom zobrazeni"+cr_lf+;
  682.      " Ctrl-Left .... presunie vsetky stlpce o jednu poziciu dolava"+cr_lf+;
  683.      " Ctrl-Right ... presunie vsetky stlpce o jednu poziciu doprava"+cr_lf;
  684.     )
  685.   AAdd(aHelpTxt,;   //## 7 ##  FormMode
  686.      " PgDn ......... presunie na dalsi zaznam"+cr_lf+;
  687.      " PgUp ......... presunie na predchadzajuci zaznam"+cr_lf+;
  688.      " Ctrl-PgUp .... presunie na zaciatok databazy"+cr_lf+;
  689.      " Ctrl-PgDn .... presunie na koniec databazy"+cr_lf+;
  690.      " Ctrl-Home .... presunie na prve pole (zaciatok) zaznamu"+cr_lf+;
  691.      " Ctrl-End ..... presunie na posledne pole (koniec) zaznamu"+cr_lf;
  692.     )
  693.   AAdd(aHelpTxt,;   //## 8 ##  Moving+Editing
  694.      " Ctrl-Left .... presunie na zaciatok slova"+cr_lf+;
  695.      " Ctrl-Right ... presunie na koniec slova"+cr_lf+;
  696.      " Ctrl-T ....... zmaze slovo napravo od kurzoru"+cr_lf+;
  697.      " Ctrl-BackSp . zmaze slovo nalavo od kurzoru"+cr_lf+;
  698.      " Insert ....... prepina vkladaci/prepisovaci mod"+cr_lf+;
  699.      " BackSpace ... zmaze pismeno nalavo od kurzoru"+cr_lf+;
  700.      " Delete ....... zmaze pismeno pod kurzorom"+cr_lf;
  701.     )
  702.   AAdd(aHelpTxt,;   //## 9 ##  ReadView
  703.      " kurz.sipky ... presunie kurzor"+cr_lf+;
  704.      " Enter ........ ok, chod dalej"+cr_lf+;
  705.      " Esc .......... koniec"+cr_lf+;
  706.      " Ctrl-Home .... presunie na prve pole (zaciatok) zaznamu"+cr_lf+;
  707.      " Ctrl-End ..... presunie na posledne pole (koniec) zaznamu"+cr_lf+;
  708.      " Ctrl-Left .... presunie na zaciatok slova"+cr_lf+;
  709.      " Ctrl-Right ... presunie na koniec slova"+cr_lf;
  710.     )
  711.   AAdd(aHelpTxt,;   //## 10 ##  ReadEdit
  712.      " kurz.sipky ... presunie kurzor"+cr_lf+;
  713.      " Enter ........ ok, chod dalej"+cr_lf+;
  714.      " Esc .......... prerusi editaciu"+cr_lf+;
  715.      " Ctrl-Home .... presunie na prve pole (zaciatok) zaznamu"+cr_lf+;
  716.      " Ctrl-End ..... presunie na posledne pole (koniec) zaznamu"+cr_lf+;
  717.      " Ctrl-Left .... presunie na zaciatok slova"+cr_lf+;
  718.      " Ctrl-Right ... presunie na koniec slova"+cr_lf+;
  719.      " Ctrl-T ....... zmaze slovo napravo od kurzoru"+cr_lf+;
  720.      " Ctrl-BackSp . zmaze slovo nalavo od kurzoru"+cr_lf+;
  721.      " Insert ....... prepina vkladaci/prepisovaci mod"+cr_lf+;
  722.      " BackSpace ... zmaze pismeno nalavo od kurzoru"+cr_lf+;
  723.      " Delete ....... zmaze pismeno pod kurzorom"+cr_lf;
  724.     )
  725.   AAdd(aHelpTxt,;   //## 11 ##  MemoView=15+11
  726.      " Esc .......... ok, koniec"+cr_lf+;
  727.      " Ctrl-Enter ... ok, koniec"+cr_lf;
  728.     )
  729.   AAdd(aHelpTxt,;   //## 12 ##  MemoEdit
  730.      " kurz.sipky ... presunie kurzor"+cr_lf+;
  731.      " Ctrl-Enter ... ok, koniec (uloz zmenene udaje)"+cr_lf+;
  732.      " Esc .......... prerus, koniec (bez ulozenia zmenenych udajov)"+cr_lf+;
  733.      " Ctrl-Left .... presunie na zaciatok slova"+cr_lf+;
  734.      " Ctrl-Right ... presunie na koniec slova"+cr_lf+;
  735.      " Home ......... presunie na zaciatok riadku"+cr_lf+;
  736.      " End .......... presunie na koniec riadku"+cr_lf+;
  737.      " Ctrl-Home .... presunie na zaciatok okna"+cr_lf+;
  738.      " Ctrl-End ..... presunie na koniec okna"+cr_lf+;
  739.      " PgUp ......... presunie na predchadzajucu stranku"+cr_lf+;
  740.      " PgDn ......... presunie na dalsiu stranku"+cr_lf+;
  741.      " Ctrl-PgUp .... presunie na zaciatok textu"+cr_lf+;
  742.      " Ctrl-PgDn .... presunie na koniec textu"+cr_lf+;
  743.      " Enter ........ dalsi (novy) riadok"+cr_lf+;
  744.      " Delete ....... zmaze pismeno pod kurzorom"+cr_lf+;
  745.      " BackSpace ... zmaze pismeno nalavo od kurzoru"+cr_lf+;
  746.      " Tab .......... vlozi znak tabulatora alebo medzery"+cr_lf+;
  747.      " Insert ....... prepina vkladaci/prepisovaci mod"+cr_lf+;
  748.      " Ctrl-Y ....... zmaze aktualny riadok"+cr_lf+;
  749.      " Ctrl-T ....... zmaze slovo napravo od kurzoru"+cr_lf;
  750.     )
  751.   AAdd(aHelpTxt,;   //## 13 ##  Drag
  752.      " kurz.sipky .......... presunie ram okna"+cr_lf+;
  753.      " NumLock+kurz.sipky: . zmeni velkost ramu okna:"+cr_lf+;
  754.      "   4 (sipka vlavo) ... zmensi pocet stlpcov"+cr_lf+;
  755.      "   6 (sipka vpravo) .. zvacsi pocet stlpcov"+cr_lf+;
  756.      "   8 (sipka hore) .... zmensi pocet riadkov"+cr_lf+;
  757.      "   2 (sipka dolu) .... zvacsi pocet riadkov"+cr_lf+;
  758.      " Ine ................. ok, koniec"+cr_lf;
  759.     )
  760.   AAdd(aHelpTxt,;   //## 14 ##  Security
  761.      " Up,Down ...... presunie kurzor"+cr_lf+;
  762.      " Enter ........ prepnutie: povolena/zakazana polozka(y)"+cr_lf+;
  763.      " Ctrl-Enter.... ok, koniec"+cr_lf+;
  764.      " Esc .......... ok, koniec"+cr_lf;
  765.     )
  766.   AAdd(aHelpTxt,;   //## 15 ##  Info
  767.      " kurz.sipky ... presunie kurzor"+cr_lf+;
  768.      " Home ......... presunie na zaciatok riadku"+cr_lf+;
  769.      " End .......... presunie na koniec riadku"+cr_lf+;
  770.      " Ctrl-Home .... presunie na zaciatok okna"+cr_lf+;
  771.      " Ctrl-End ..... presunie na koniec okna"+cr_lf+;
  772.      " PgDn ......... presunie na dalsiu stranku"+cr_lf+;
  773.      " PgUp ......... presunie na predchadzajucu stranku"+cr_lf+;
  774.      " Ctrl-PgUp .... presunie na zaciatok textu"+cr_lf+;
  775.      " Ctrl-PgDn .... presunie na koniec textu"+cr_lf;
  776.     )
  777.   AAdd(aHelpTxt,;   //## 16 ##  Menu
  778.      " kurz.sipky ... presunie kurzor"+cr_lf+;
  779.      " Home ......... presunie na prvu polozku menu"+cr_lf+;
  780.      " End .......... presunie na poslednu polozku menu"+cr_lf+;
  781.      " Enter ........ vyber oznacenej polozky"+cr_lf+;
  782.      " Esc .......... prerusenie vyberu na tejto urovni menu"+cr_lf+;
  783.      " Zvyraznene pismeno ... rychly vyber danej polozky"+cr_lf;
  784.     )
  785.   AAdd(aHelpTxt,;   //## 17 ##  EditIt-View
  786.      " kurz.sipky ... presunie kurzor"+cr_lf+;
  787.      " Enter ........ ok, chod dalej"+cr_lf+;
  788.      " Esc .......... koniec"+cr_lf+;
  789.      " Home ......... presun na zaciatok riadku"+cr_lf+;
  790.      " End .......... presun na koniec riadku"+cr_lf+;
  791.      " Ctrl-Left .... presunie na zaciatok slova"+cr_lf+;
  792.      " Ctrl-Right ... presunie na koniec slova"+cr_lf;
  793.     )
  794.   AAdd(aHelpTxt,;   //## 18 ##  EditIt-Edit: 17+18
  795.      " Ctrl-T ....... zmaze slovo napravo od kurzoru"+cr_lf+;
  796.      " Ctrl-BackSp . zmaze slovo nalavo od kurzoru"+cr_lf+;
  797.      " Insert ....... prepina vkladaci/prepisovaci mod"+cr_lf+;
  798.      " BackSpace ... zmaze pismeno nalavo od kurzoru"+cr_lf+;
  799.      " Delete ....... zmaze pismeno pod kurzorom"+cr_lf;
  800.     )
  801.  
  802.   #endif  //language support
  803.  
  804.  
  805.   St:=cr_lf+" "+ResTxt(185)+cr_lf+cr_lf
  806.   AEval(ATail(aHelpKeys),{|e|St+=aHelpTxt[e]})
  807.   St+=cr_lf+"................................................"
  808.   St+=" "+ResTxt(007)+" ............"
  809.   Rs:=Min(MaxRow()-5,MLCount(St,80))
  810.   Cs:=58
  811.   OldMsg:=SetDialog(true)
  812.   SaveDOut(ResTxt(146))
  813.   SetDialog(false)
  814.   OldUp:=SetKey(K_UP,nil)
  815.   OldDown:=SetKey(K_DOWN,nil)
  816.   OldWrap:=SetMemoWrap(false)
  817.   Memo({||St},false,ResTxt(028),-3,-3,Rs,Cs,,m->Color:Help)
  818.   SetMemoWrap(OldWrap)
  819.   SetKey(K_UP,OldUp)
  820.   SetKey(K_DOWN,OldDown)
  821.   SetDialog(true)
  822.   RestDOut()
  823.   SetDialog(OldMsg)
  824.   SetKey(K_F1,OldHelp1)
  825.   SetKey(K_SH_F1,OldHelp2)
  826.   return(true)
  827.  
  828.  
  829. //*****************************************************************************
  830. // SaveHelpIdx( aNewIdx ) --> true
  831. // save new help indexes (array of numeric items as pointers into aHelpTxt)
  832. //
  833. function SaveHelpIdx( New )
  834.   if SetHelpIdx()
  835.     AAdd(aHelpKeys,New)
  836.   endif
  837.   return(true)
  838.  
  839.  
  840. //*****************************************************************************
  841. // RestHelpIdx() --> true
  842. // restore previous state of aHelpTxt
  843. //
  844. function RestHelpIdx()
  845.   if SetHelpIdx()
  846.     ATailDel(aHelpKeys)
  847.   endif
  848.   return(true)
  849.  
  850.  
  851. //*****************************************************************************
  852. // SetHelpIdx(lNew) --> lOld
  853. // restore previous state of aHelpTxt
  854. //
  855. function SetHelpIdx(lNew)
  856.   static lOld:=true
  857.   return lOld update with lNew
  858.  
  859.  
  860. //#############################################################################
  861. //#############################################################################
  862. // CanEditHelp(new) --> old
  863. // allow to edit a help item instead view of it.
  864. //
  865. function CanEditHelp(new)
  866.   static old:=true
  867.   return old update with new
  868.  
  869.  
  870. //*****************************************************************************
  871. // HelpReserved(new,add) --> old
  872. // Reserved a help entry items for an application programmer.
  873. // Available indexes are 1..HelpReserved()
  874. // Usage:
  875. //   HelpReserved(10)  ... reserve 10 help entries (must be used before Dbf:New())
  876. //   HelpReserved()    ... current help counter return value
  877. //   HelpReserved(,+1) ... increment the help counter
  878. //
  879. function HelpReserved(new,add)
  880.   static old:=0
  881.   if( !Empty(new), old:=new, )
  882.   if( !Empty(add), old+=add, )
  883.   return(old)
  884.  
  885.  
  886. //*****************************************************************************
  887. // HelpAssoc(Txt,VarName,[N]) --> N
  888. // Work around a Association array for scanning a help items
  889. //
  890. function HelpAssoc(Txt,VarName,N)
  891.   if Empty(N)  //scan mode
  892.     N:=AScan(Association,{|e|e[1]==Txt})
  893.   else  //add mode
  894.     AAdd(Association,{Txt,VarName,N})
  895.   endif
  896.   return(N)
  897.  
  898.  
  899. //*****************************************************************************
  900. // ChangeAssoc(Txt,VarName,[N]) --> true/false
  901. // set new VarName/N for this association.
  902. //
  903. function ChangeAssoc(Txt,VarName,N)
  904.   local i:=AScan(Association,{|e|e[1]==Txt})
  905.   if i>0  //found
  906.     Association[i]:={Txt,if(Empty(VarName),Association[i,2],VarName),if(Empty(N),Association[i,3],N)}
  907.     return(true)
  908.   endif
  909.   return(false)
  910.  
  911.  
  912. //*****************************************************************************
  913. // ReadHelpVar() --> return "VarName" from top of stack
  914. // ReadHelpVar("VarName") --> add "VarName" on top stack
  915. // ReadHelpVar(nil) --> remove (pop) the last "VarName" from stack
  916. //
  917. function ReadHelpVar(vn)
  918.   static st:={}
  919.   if PCount()==0; return(ATail(st)); endif
  920.   if !Empty(vn); AAdd(st,vn); return(vn); endif
  921.   ASize(st,Len(st)-1)
  922.   return(ATail(st))
  923.  
  924.  
  925. //*****************************************************************************
  926. // HelpField() --> true
  927. // field help for currently selected item.
  928. //
  929. function HelpField()
  930.   local Lt,i,oi,scr,IsF8
  931.   returnif ReadHelpVar()==DISABLE    with false
  932.   returnif ReadHelpVar()=="MENU->0"  with false
  933.   returnif ReadHelpVar()=="MEMORY->" with false
  934.   i:=HelpAssoc(ReadHelpVar())
  935.   if i==0; Alert(ResTxt(189)); return(false); endif
  936.   (cHelp)->(DbGoto(Association[i,3]))
  937.   Lt:=SetLastTask()
  938.   object oi of Info
  939.   oi:GoodInit(ResTxt(187)+": "+Association[i,2],,,(cHelp)->RowSize,(cHelp)->ColSize,-1,m->Color:Help)
  940.   oi:RecNo:=Association[i,3]
  941.   oi:Buff:=(cHelp)->Text
  942.   oi:Wrap:=false
  943.   oi:CanPrint:=false
  944.   oi:CanEdit:=CanEditHelp()
  945.   oi:DoneBlock:={|o|DoDone(o)}
  946.   IsF8:=false
  947.   i:=SetKey(K_F8,{||IsF8:=true,StuffKey(K_CTRL_W)})
  948.   scr:=SaveScr()
  949.   oi:Paint(true)
  950.   repeat
  951.     oi:VProcess()
  952.     if IsF8
  953.       MyDrag(oi,scr)
  954.       IsF8:=false
  955.     else
  956.       exit
  957.     endif
  958.   endrepeat
  959.   oi:Done(false)
  960.   RestScr(scr)
  961.   SetKey(K_F8,i)
  962.   SetLastTask(Lt)
  963.   return(true)
  964.  
  965. static function MyDrag(oi,scr)
  966.   oi:Frame:Init(oi:Row,oi:Col,oi:RowSize,oi:ColSize)
  967.   oi:Frame:MaxRows:=oi:MaxRows
  968.   oi:Frame:MaxCols:=oi:MaxCols
  969.   oi:Frame:MinRows:=oi:MinRows
  970.   oi:Frame:MinCols:=oi:MinCols
  971.   if oi:Frame:Drag(true)
  972.     oi:Row:=oi:Frame:Row             //save
  973.     oi:Col:=oi:Frame:Col
  974.     oi:RowSize:=oi:Frame:RowSize
  975.     oi:ColSize:=oi:Frame:ColSize
  976.   endif
  977.   RestScr(scr)
  978.   oi:Paint(true)
  979.   return(true)
  980.  
  981. static function DoDone(oi)
  982.   local s
  983.   if oi:CanEdit
  984.     s:=Select()
  985.     select (cHelp)
  986.     goto oi:RecNo
  987.     net rlock continue
  988.     if !NetErr()
  989.       field->Text:=oi:Buff
  990.       field->RowSize:=oi:RowSize
  991.       field->ColSize:=oi:ColSize
  992.       net unlock
  993.     endif
  994.     select (s)
  995.   endif
  996.   return(true)
  997.  
  998. //-------------------------------------------------- eof (c)JHK ---------------
  999.  
  1000.